5 DIM P$(78,3),D$(3),R(5),CK$(50) 10 POKE53280,.:POKE53281,.:PRINT"[147]"CHR$(142)" PRINTER MAZE" 12 PRINT" [153]BY JERRY A. STURDIVANT" 20 REM INITIALISE 30 REM" [184][184][184][184][184][184][184][184][184][184][184][184]" 50 CHOICE$(0)="PATTERN ":CHOICE$(1)="MIX ":R=RND(-TI):N=1 60 D$(1)="[186][164][204][186] [204] [205][205][206][206] " 70 D$(2)=" [167] [165][205][160][205][206][160][206]" 80 D$(3)="[208][163][207][208][160][207][205][205][160][160][206][206]" 90 REM INPUTS 100 REM" [184][184][184][184][184][184][184][184]" 110 MIX=0:RAN=0:SCREEN=0:NU=0:A=0 120 PRINT"[154](S[154])CREEN, (H[154])ARD COPY, OR (Q[154])UIT " 130 GET A$:IF(ASC(A$+CHR$(.))>128)THENA$=CHR$(ASC(A$)-128) 135 IF(A$<>"S")AND(A$<>"H")AND(A$<>"Q")THEN130 137 IFA$="Q"THENGOSUB6000:GOTO120 138 IF A$="H" THENGOSUB7000:IF(AB)THENAB=.:GOTO120 140 IF A$="S" THEN SCREEN=1 150 PRINT"(P[154])ATTERN OR (M[154])IX OR (R[154])ANDOM" 160 GET A$:IF(ASC(A$+CHR$(.))>128)THENA$=CHR$(ASC(A$)-128) 165 IF A$<>"P"ANDA$<>"M"ANDA$<>"R"THEN160 170 IF A$="M" THEN MIX=1 180 IF A$="R" THEN RAN=1:GOTO 240 190 PRINT"WOULD YOU LIKE TO ENTER A PATTERN" 195 PRINT"NUMBER (Y[154]/N[154])" 200 GET A$:IF A$<>"Y"ANDA$<>"N"ANDA$<>"[217]"ANDA$<>"[206]"THEN200 210 IF A$="Y" ORA$="[217]" THEN GOSUB 870:REM GET SELECTED NUMBER 215 PRINT"[147]"; 220 REM SET OUTPUT 230 REM" [184][184][184][184][184][184][184][184][184][184][184][184]" 240 ACROSS=78:VERTICAL=(66-2)*2:DEVICE=4:A=0 250 IF SCREEN THEN ACROSS=39:VERTICAL=23:DEVICE=3 260 CLOSE 1:OPEN 1,DEVICE 270 IF DEVICE=4 THEN CLOSE 6:OPEN 6,4,6:PRINT#6,CHR$(18) 280 IFNU=1THEN510 290 IF(A$="H")THEN 540 300 A$="" 310 REM PICK 4 RND NUMBERS 320 REM" [184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]" 330 FOR I=1 TO 4 340 R(I)=INT(RND(0)*4) 350 HO$(I)=STR$(R(I)) 360 NEXT 370 IF R(1)=R(2) AND R(2)=R(3) AND R(3)=R(4) THEN 330 380 N=N+1:IF N=50 THEN 830:REM QUIT 390 REM MEMORIZE THE NUMBERS 400 REM" [184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]" 410 CK$(N)="":FOR I=1 TO 4 420 CK$(N)=CK$(N)+RIGHT$(HO$(I),1) 430 NEXT 440 REM SEE IF USED BEFORE 450 REM" [184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]" 460 COMPARE=N 470 FOR I=1 TO N-1 480 IF CK$(I)=CK$(COMPARE) THEN 330 490 NEXT 510 PRINT"[147][129]SELECTION NUMBER: [158]" CHOICE$(MIX) CK$(N)"[159]"; 520 REM SET UP THREE LINES 530 REM" [184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]" 540 FOR ROW=1 TO VERTICAL/3 550 IF MIX THEN R(5)=R(4):R(4)=R(3):R(3)=R(2):R(2)=R(1):R(1)=R(5) 560 FOR X=1 TO ACROSS/3 570 A=A+1:IF A>4 THEN A=1 580 R=R(A)*3+1 590 IF RAN THEN R=INT(RND(0)*4)*3+1 600 FOR Y=1 TO 3 610 P$(X,Y)=MID$(D$(Y),R,3) 620 NEXT Y,X 630 REM PRINT THOSE THREE LINES 640 REM" [184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]" 650 FOR Y=1 TO 3 660 PRINT#1 670 FOR X=1 TO ACROSS/3 680 PRINT#1,P$(X,Y); 690 NEXT X 700 GET A$:IF A$=" " THEN 730 710 NEXT Y 720 NEXT ROW 730 IF SCREEN=0 THEN FOR I=1 TO 6:PRINT#1:NEXT 740 REM FULL PAGE-NOW WHAT? 750 REM" [184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]" 760 PRINT 770 PRINT" [154]WOULD YOU LIKE TO DO ANOTHER? (Y[154]/N[154])" 800 GET A$:IFA$<>"Y"ANDA$<>"N"ANDA$<>"[217]"ANDA$<>"[206]"THEN800 820 IF A$="Y"ORA$="[217]"THEN10 830 CLOSE 1:IF DEVICE=4 THEN PRINT#6,CHR$(36):CLOSE 6 840 OPEN15,8,15,"R0:HELLO CONNECT=HELLO CONNECT":INPUT#15,ER:CLOSE15 842 PRINT"[147]";:IFER<>63THENEND 844 LOAD"HELLO CONNECT",8 850 REM INPUT SELECTED NUMBER 860 REM" [184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]" 870 N=N+1:NU=1 880 PRINT "[154]ENTER A FOUR-DIGIT NUMBER [0 - 3]" 885 PRINT ":[164] [157][157][157][157]";:GOSUB5000:CK$(N)=A$ 886 OK=-1:FORA=1TOLEN(A$):IFMID$(A$,A,1)>"3"ORMID$(A$,A,1)<"0"THENOK=. 887 NEXT:IFNOT(OK)THENPRINT"[145][145][145]";:GOTO880 890 FOR I= 1 TO 4 900 R(I)=VAL(MID$(CK$(N),I,1)) 910 NEXT 920 RETURN 5000 FORA=1TO4:G$(A)="" 5010 GETA$:IFA$=""THEN5010 5020 IF(A$=CHR$(20))AND(A>1)THENA=A-1:PRINT"[157][157] [157][157][164]";:G$(A)="":GOTO5010 5040 IF(A$<"0")OR(A$>"9")THEN5010 5050 PRINT"[157]"A$"[164]";:G$(A)=A$:NEXT 5060 PRINT"[157] ":A$="" 5070 FORB=1TOA-1:A$=A$+G$(B):NEXT:RETURN 6000 PRINT"[145] ARE YOU SURE YOU WANT TO QUIT? (Y[154]/N[154])" 6010 GETA$:IFA$<>"Y"ANDA$<>"[217]"ANDA$<>"N"ANDA$<>"[206]"THEN6010 6020 IFA$="N"ORA$="[206]"THENPRINT"[145]";:RETURN 6030 GOTO840 7000 OPEN15,4,15:CLOSE15:IF(ST=.)THENRETURN 7010 PRINT"[145][150]CAN'T USE PRINTER ... IT'S NOT ON-LINE.[145]" 7020 FORA=1TO2000:NEXT:AB=-1:RETURN